// pages/resource-navigation/property-repair/index.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    repairTypes: [
      { id: 1, name: '水电维修', icon: '💧', color: '#4ecdc4' },
      { id: 2, name: '电梯故障', icon: '🛗', color: '#ff6b6b' },
      { id: 3, name: '门禁系统', icon: '🔐', color: '#45b7d1' },
      { id: 4, name: '公共设施', icon: '🏢', color: '#96ceb4' },
      { id: 5, name: '环境卫生', icon: '🧹', color: '#feca57' },
      { id: 6, name: '其他问题', icon: '❓', color: '#a8e6cf' }
    ],
    selectedType: null,
    description: '',
    contactInfo: '',
    images: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    return {
      title: '物业报修',
      path: '/pages/resource-navigation/property-repair/index'
    };
  },

  /**
   * 选择报修类型
   */
  selectRepairType(e) {
    const typeId = e.currentTarget.dataset.id;
    const selectedType = this.data.repairTypes.find(type => type.id === typeId);
    this.setData({
      selectedType
    });
  },

  /**
   * 输入描述
   */
  onDescriptionInput(e) {
    this.setData({
      description: e.detail.value
    });
  },

  /**
   * 输入联系方式
   */
  onContactInput(e) {
    this.setData({
      contactInfo: e.detail.value
    });
  },

  /**
   * 选择图片
   */
  chooseImage() {
    wx.chooseImage({
      count: 3,
      sizeType: ['compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          images: [...this.data.images, ...res.tempFilePaths]
        });
      }
    });
  },

  /**
   * 删除图片
   */
  deleteImage(e) {
    const index = e.currentTarget.dataset.index;
    const images = this.data.images;
    images.splice(index, 1);
    this.setData({
      images
    });
  },

  /**
   * 预览图片
   */
  previewImage(e) {
    const current = e.currentTarget.dataset.src;
    wx.previewImage({
      current,
      urls: this.data.images
    });
  },

  /**
   * 提交报修
   */
  submitRepair() {
    const { selectedType, description, contactInfo } = this.data;

    if (!selectedType) {
      wx.showToast({
        title: '请选择报修类型',
        icon: 'none'
      });
      return;
    }

    if (!description.trim()) {
      wx.showToast({
        title: '请填写问题描述',
        icon: 'none'
      });
      return;
    }

    if (!contactInfo.trim()) {
      wx.showToast({
        title: '请填写联系方式',
        icon: 'none'
      });
      return;
    }

    wx.showModal({
      title: '确认提交',
      content: '确定要提交报修申请吗？',
      success: (res) => {
        if (res.confirm) {
          // 这里可以调用API提交报修信息
          wx.showLoading({
            title: '提交中...'
          });

          // 模拟提交
          setTimeout(() => {
            wx.hideLoading();
            wx.showToast({
              title: '提交成功',
              icon: 'success'
            });

            // 重置表单
            this.setData({
              selectedType: null,
              description: '',
              contactInfo: '',
              images: []
            });

            // 返回上一页
            setTimeout(() => {
              wx.navigateBack();
            }, 1500);
          }, 2000);
        }
      }
    });
  }
});